/**
 * 
 */
package com.dingding.order.core.myorder.dao;

import java.util.List;

import com.dingding.common.core.base.dao.IBaseDao;
import com.dingding.common.core.beans.Userorder;
import com.dingding.order.dto.myorder.MyOrder;
import com.dingding.order.dto.myorder.ReqHistoryOrderDTO;
import com.dingding.order.dto.myorder.ReqHistoryOrderDetailDTO;
import com.dingding.order.dto.myorder.ReqMyOrderDTO;
import com.dingding.order.dto.myorder.ResHistoryOrderDTO;
import com.dingding.order.dto.myorder.ResHistoryOrderDetailDTO;
import com.dingding.order.dto.myorder.SpeCusOrdInfoResult;
import com.dingding.order.dto.myorder.UserTakeInformation;

/**
 * @ClassName: IGetMyOrderDao
 * @Description:获得我的订单Dao
 * @author zhouxuan
 * @date 2016年7月5日 上午10:48:11
 * @since V2.3.0
 */

public interface IGetMyOrderDao extends IBaseDao<Userorder> {

	/**
	 * @Title: getMyOrderList
	 * @Description:获得我的订单
	 * @author zhouxuan
	 * @since V2.3.0
	 */
	public List<MyOrder> getMyOrderList(ReqMyOrderDTO reqMyOrderDTO);

	
	/**
	 * 
	 * @Title: getMyDriverOrderList 
	 * @Description: 获取出租车司机历史订单
	 * @param reqMyOrderDTO 客户端请求Bean
	 * @author YHQ 
	 * @since V2.5.6
	 * @return List<MyOrder>    返回类型
	 * 
	 */
	public List<MyOrder> getMyDriverOrderList(ReqMyOrderDTO reqMyOrderDTO);
	
	/**
	 * 
	 * @Title: getHistoryOrder 
	 * @Description: 获取我的订单(已完成 + 已取消) 
	 * @param reqHistoryOrder 历史订单客户端请求Bean
	 * @author YHQ 
	 * @since V2.5.0
	 * @return List<ResHistoryOrderDTO>    返回类型
	 * 
	 */
	public List<ResHistoryOrderDTO> getHistoryOrder(ReqHistoryOrderDTO reqHistoryOrderDTO);
	
	/**
	 * 
	 * @Title: getHistoryOrderDetail 
	 * @Description: 获取订单详情(已完成 + 已取消) 
	 * @param reqHistoryOrderDetailDTO 历史订单客户端请求Bean
	 * @author YHQ 
	 * @since V2.5.0
	 * @return ResHistoryOrderDetailDTO    返回类型
	 * 
	 */
	public ResHistoryOrderDetailDTO getHistoryOrderDetail(ReqHistoryOrderDetailDTO reqHistoryOrderDetailDTO);
	
	/**
	 * @Title: getUserTakeImformation
	 * @Description:获取用户搭乘接乘信息
	 * @author zhouxuan
	 * @since V2.3.0
	 */
	public UserTakeInformation getUserTakeImformation(String userId);
	
	/**
	 * @Description:获取乘客的专车订单
	 * @param userId 用户id
	 * @author fengshuonan
	 * @since 2.4
	 */
	public List<SpeCusOrdInfoResult> getCustomerSpecialOrder(String userId);
	
	/**
	 * @Description:获取用户id通过手机号
	 * @param phone 手机号
	 * @author fengshuonan
	 * @return String 用户id
	 * @since 2.4
	 */
	public String getUserIdByPhone(String phone);
	
	/**
	 * @Description:取消专车订单
	 * @param orderId 订单id
	 * @author fengshuonan
	 * @return boolean true 成功  fasle 失败
	 * @since 2.4
	 */
	public Boolean cancelSpecialOrder(String orderId);
}
